excel使用 |
您所在的位置:网站首页 › vb 折线图 › excel使用 |
父上大人让我给他做一个方便在excel里面画曲线的东西。根据sheet1中的数据画出在sheet2中划出曲线。 效果: sheet1 sheet2首先不能用绘制折线图的方法,因为数据太多了,用折线图反而不直观。 查了些资料开了些脑洞之后觉得还是使用宏最方便。 宏的快捷键设置 查看宏——>选项 加入了比例尺之后的代码: Sub 宏1() '还是要在sheet1中,选中相关的那个单元格 'Sheet1.Cells(3,2)——表1第3行第2格 'Sheet2.Rows.RowHeight——列高 Dim BILICHI As Double '比例尺 BILICHI = 10 Dim DATE0 As Integer '定义横向偏移 DATE0 = 0 Dim ZERO As Integer '定义零点所在的行 ZERO = 11 * BILICHI Dim row2 As Integer '直线终止点y = 被选中单元格中的值 row2 = ZERO - ActiveCell.Value Dim column As Integer '直线终止点x = 被选中单元格的行号+横向偏移 comlumn = ActiveCell.row + DATE0 Dim row1 As Integer '直线起始点y = 被选中的单元格的上一个数据的值 row1 = ZERO - Sheet1.Cells(ActiveCell.row - 1, ActiveCell.column).Value Set myDocument = Worksheets(2) With myDocument.Shapes.AddLine(Sheet2.Cells(row1, comlumn - 1).Left, Sheet2.Rows.RowHeight * row1 / BILICHI, Sheet2.Cells(row2, comlumn).Left, Sheet2.Rows.RowHeight * row2 / BILICHI).Line '画直线 .ForeColor.RGB = RGB(255, 0, 0) '设置颜色 End With End Sub这段代码的缺陷就是使用宏的时候必须位于sheet1,选中相关的那个单元格。 吐槽一下excel的行宽与列高单位不一样,换算不准,所以我也没有用,这是在百度上查到的: image.png由于父上大人画图的时候只需要增加最后一天的,所以由设计了另一版代码(每次只能画最后一条线)。 Sub 宏2() 'Sheet1.Cells(3,2)——表1第3行第2格 'Sheet2.Rows.RowHeight——列高 'Sheet1.UsedRange.Rows.Count——sheet1中存在的数据行数 Dim BILICHI As Double '比例尺 BILICHI = 10 Dim DATE0 As Integer '定义横向偏移 DATE0 = 0 Dim ZERO As Integer '定义零点所在的行 ZERO = 11 * BILICHI Dim row2 As Integer '直线终止点y = 被选中单元格中的值 row2 = ZERO - Sheet1.Cells(Sheet1.UsedRange.Rows.Count, Sheet1.UsedRange.Columns.Count).Value Dim column As Integer '直线终止点x = 被选中单元格的行号+横向偏移 comlumn = Sheet1.UsedRange.Rows.Count + DATE0 Dim row1 As Integer '直线起始点y = 被选中的单元格的上一个数据的值 row1 = ZERO - Sheet1.Cells(Sheet1.UsedRange.Rows.Count - 1, Sheet1.UsedRange.Columns.Count).Value Set myDocument = Worksheets(2) With myDocument.Shapes.AddLine(Sheet2.Cells(row1, comlumn - 1).Left, Sheet2.Rows.RowHeight * row1 / BILICHI, Sheet2.Cells(row2, comlumn).Left, Sheet2.Rows.RowHeight * row2 / BILICHI).Line '画直线 .ForeColor.RGB = RGB(50, 0, 255) '设置颜色 End With End Sub这样两个版本应该够用了。 其他 · Excel查看代码功能 除了使用宏之外,右键sheet——>查看代码,也可以对excel批量处理进行编程,比如选择在鼠标双击或鼠标右键或改变选择的单元格的时候发生动作。 又其他 · Excel与绘图 查资料的时候在网上看到了这个一个图片: 98701426_17.gif 出处:http://www.360doc.com/content/17/0509/23/25710133_652551885.shtml 鹅妹子嘤。 突然想到有了每条线条的起始点终止点位置,通过宏 或者右键sheet——>查看代码 即使是完全不懂绘画的程序员也能复制出这一幅画。 或许矢量图就是这么个思想吧。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |